home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
001
/
pibt40s1.arc
/
GETCAPTU.MOD
< prev
next >
Wrap
Text File
|
1987-04-17
|
8KB
|
195 lines
(*----------------------------------------------------------------------*)
(* Get_Capture_File -- Get session capture file name *)
(*----------------------------------------------------------------------*)
PROCEDURE Get_Capture_File( Capture_FName : AnyStr;
Capture_Type : AnyStr );
(*----------------------------------------------------------------------*)
(* *)
(* Procedure: Get_Capture_File *)
(* *)
(* Purpose: Opens capture file *)
(* *)
(* Calling Sequence: *)
(* *)
(* Get_Capture_File( Capture_FName : AnyStr; *)
(* Capture_Type : AnyStr ); *)
(* *)
(* Capture_FName --- name of capture file; prompted for *)
(* if null. *)
(* Capture_Type --- type of capture to perform. *)
(* E = edited, U = unedited. *)
(* *)
(* Calls: *)
(* *)
(* Open_For_Append *)
(* YesNo *)
(* Save_Screen *)
(* Draw_Menu_Frame *)
(* Restore_Screen *)
(* Reset_Global_Colors *)
(* *)
(*----------------------------------------------------------------------*)
VAR
OK_File : BOOLEAN;
Open_OK : BOOLEAN;
File_Exists : BOOLEAN;
Name_Given : BOOLEAN;
Ierr : INTEGER;
BEGIN (* Get_Capture_File *)
Save_Partial_Screen( Saved_Screen, 10, 10, 70, 16 );
Draw_Menu_Frame( 10, 10, 70, 16, Menu_Frame_Color, Menu_Title_Color,
Menu_Text_Color, 'Capture session' );
(* If capture mode ON, close current *)
(* capture file and turn capture mode *)
(* OFF. *)
IF Capture_On THEN
BEGIN
(*$I-*)
CLOSE( Capture_File );
(*$I+*)
Capture_On := FALSE;
TextColor( Menu_Text_Color_2 );
WRITELN;
WRITELN('*** Capturing of session to ', Capture_File_Name,
' terminated.');
TextColor( Menu_Text_Color );
DELAY( Two_Second_Delay );
END
ELSE (* If capture mode OFF, then get name *)
(* of file to capture to, and turn on *)
(* capture mode. *)
BEGIN (* Capture mode was Off *)
Capture_File_Name := Capture_FName;
OK_File := FALSE;
Name_Given := LENGTH( Capture_File_Name ) > 0;
REPEAT
Clear_Window;
TextColor( Menu_Text_Color_2 );
WRITE('File name to capture session to ? ');
TextColor( Menu_Text_Color );
IF ( NOT Name_Given ) THEN
BEGIN
Capture_File_Name := '';
Read_Edited_String( Capture_File_Name );
WRITELN;
IF Capture_File_Name = CHR( ESC ) THEN
Capture_File_Name := '';
END
ELSE
WRITELN( Capture_File_Name );
DELAY ( One_Second_Delay );
IF ( LENGTH( Capture_File_Name ) > 0 ) THEN
BEGIN
ASSIGN( Capture_File , Capture_File_Name );
(*$I-*)
RESET( Capture_File );
(*$I+*)
IF Int24Result = 0 THEN
BEGIN
IF ( NOT Name_Given ) THEN
OK_File := YesNo('File ' + Capture_File_Name +
' already exists, append to it (Y/N) ? ')
ELSE
OK_File := TRUE;
File_Exists := TRUE;
(*$I-*)
CLOSE( Capture_File );
(*$I+*)
END
ELSE
BEGIN
OK_File := TRUE;
File_Exists := FALSE;
END;
END;
UNTIL ( OK_File ) OR ( LENGTH( Capture_File_Name ) = 0 );
IF LENGTH( Capture_File_Name ) > 0 THEN
BEGIN
(*$I-*)
IF File_Exists THEN
Open_OK := Open_For_Append( Capture_File,
Capture_File_Name, Ierr )
ELSE
BEGIN
(*$I-*)
ASSIGN ( Capture_File, Capture_File_Name );
REWRITE( Capture_File );
(*$I+*)
Open_OK := ( Int24Result = 0 );
END;
IF ( NOT Open_OK ) THEN
BEGIN
TextColor( Menu_Text_Color_2 );
WRITELN('Can''t open ',Capture_File_Name,' for output.');
WRITELN('Capture will not be done.');
TextColor( Menu_Text_Color );
END
ELSE
BEGIN
IF ( LENGTH( Capture_Type ) <= 0 ) THEN
Capture_Type := ' ';
CASE UpCase(Capture_Type[1]) OF
'U': Exact_Capture := TRUE;
'E': Exact_Capture := FALSE;
ELSE
WRITELN;
Exact_Capture := NOT YesNo('Perform edited capture? ');
WRITELN;
END (* CASE *);
TextColor( Menu_Text_Color_2 );
IF Exact_Capture THEN
WRITE('Unedited')
ELSE
WRITE('Edited');
WRITE(' capture to ');
TextColor( Menu_Text_Color );
WRITE( Capture_File_Name );
Capture_On := TRUE;
END;
DELAY ( One_Second_Delay );
END (* Length( Capture_File_Name ) > 0 *);
END (* Capture mode was OFF *);
Restore_Screen( Saved_Screen );
Reset_Global_Colors;
END (* Get_Capture_File *);